home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-03-06 | 3.0 KB | 61 lines | [TEXT/GEOL] |
- Item 3221192 15-Jan-91 06:38PST
-
- From: KRIPALU Kripalu Ctr, Michael A Latta,PRT
-
- To: ALGER Alger, Jeff,VCA
- DEREK White, Derek
-
- cc: MACAPP.TECH$ MacApp Technical
-
- Item forwarded by SPA.DTS to SPA0144
-
- ------------------------------------------------------------------------------
-
- Sub: View/Data Aritecture Problem
-
- MacAppers:
-
- I would like to present a problem and see what others think of it. This
- has some bearing on the Pascal 9x report as well.
-
- The current MacApp architecture assumes that the view must know the class
- of the object that is being displayed, and further must know the method that is
- to be used to access and update that data. This results in coding a view for
- every new data object. In our application and I imagine others there are a lot
- of compound objects that we would like to display using standard views (text,
- money, numbers, dates, etc.) Further I feel the application design is best if
- the view is not pointed directly to the atomic data but at the logical target
- of the view so that the application implementation of these compound objects
- can be hidden from the rest of the system.
- In Smalltalk these are called Pluggable Views. They are provided the
- selectors that retreive and return data and they care not at all what class the
- target is or what specific selector is used. I can imagine that Method
- Pointers in the Pascal 9x report were intended to support fledability in this
- direction. What I do not see is how they will in reality help at all. I may
- have missed something in the description but since the class of the receiving
- object is part of the pointer declaration the view still must know the class of
- object that will be it's target, and because the method must be implemented by
- that class the pointer can not allow the view to be ignorant of the fact that
- the method is really a subclass's specific field accessor. These pointers
- would remove the case statemnt from DoChoice type methods where the selector
- indicates the action taken by the user, but they do not allow the method to
- represent the result desired.
-
- I can not as defined provide to a generic object the method that controls
- the desired result in the target object. It is still up to the target to
- decide how to respond to user interface actions. This is a basic violation
- that data objects should be isolated from the user interface. It also does not
- deal with the problem of multiple similar objects that desire different
- results. Thus the target must still decide which button was pressed as the
- method can not be unique to the target but must match the general (TDocument?)
- target class for which the method pointer was declared.
-
- Having worked with Smalltalk this is the largest source of frustration in
- my working with MacApp. This is even more an issue than garbage collection
- (letting the computer do what it is good at, humans being historically bad at
- managing storage).
-
- Mike Latta
- KRIPALU
-
-